Skip to content

feat: implement wave-2 compliance elements (A-08/A-09/A-11/B-03/B-04/D-01)#39

Merged
0xMuang merged 8 commits into
mainfrom
feat/element-wave2
Jul 22, 2026
Merged

feat: implement wave-2 compliance elements (A-08/A-09/A-11/B-03/B-04/D-01)#39
0xMuang merged 8 commits into
mainfrom
feat/element-wave2

Conversation

@heijiLee

Copy link
Copy Markdown
Contributor

Summary

  • Implements the six newly documented compliance elements from the docs/elements walkthrough specs as illustrative mock elements: A-08 EntityEligibility, A-09 EquityOwnerLookThrough, A-11 ClaimFreshness, B-03 TransferRestrictionMetadata, B-04 EngineSelection, D-01 HolderCount (stateful).
  • Each follows the existing library pattern (BaseElement/BaseStatefulElement + Governed, operator-gated attestation setters, ReasonCodes.encode(0, ELEMENT_ID, n) with per-element code tables mapped to the docs' §6.2 failure codes) and ships with a dedicated unit test file covering every failure code and boundary (strict-vs-inclusive thresholds, fail-closed defaults, direction rules).
  • A-09 → A-08 wiring goes through a new ILookThroughSource seam; D-01 consumes A-04/A-03 via injected views, snapshots AI-ness at entry, and re-validates caps at commit (reverts ComplianceRejected on gate-to-commit races).
  • DeployStack registers all six (recipe requiredElements intentionally untouched — deferred, recorded in FEATURES/PROGRESS as CMP-003).

Verification

  • forge fmt --check, forge build, forge test --offline: 399/399 (36 suites).
  • RFQ + CLI smoke tests pass. (tools/deploy-v3 mocha step is a local env gap — vendored tool untouched by this diff.)

Specs: docs/compliance/elements/ on the docs/elements branch.

heijiLee added 8 commits July 15, 2026 14:26
Register the six wave-2 illustrative compliance elements (A-08
EntityEligibility, A-09 EquityOwnerLookThrough, A-11 ClaimFreshness, B-03
TransferRestrictionMetadata, B-04 EngineSelection, D-01 HolderCount) in
ElementRegistry via DeployStack. A-09 is deployed first and injected into
A-08's constructor as its ILookThroughSource; D-01 is constructed with the
existing IdentityUniqueness/AccreditedInvestor addresses and CapMode.TWELVE_G,
then wired to the engine via setEngine (mirroring SurveillanceFlag). Recipe
requiredElements are intentionally left untouched.
@0xMuang
0xMuang merged commit a5c174a into main Jul 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants